package com.enjoyor.soa.traffic.api.service.dubbo.tpcms;

import com.enjoyor.soa.traffic.api.dto.tpcms.PassCardDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 通行证管理dubbo接口
 * 
 * @author fzj
 */
public interface IDubboPassCardService {

    /**
     * 新增通行证
     * 
     * @param passCardDto
     *            通行证实体
     * @param userName
     *            操作用户
     * @return passCardId 通行证Id
     */
    public ResultPojo insertPassCard(PassCardDto passCardDto, String userName);

    /**
     * 删除通行证
     * 
     * @param passCardId
     *            通行证编号
     * @param userName
     *            操作用户
     */
    public ResultPojo deletePassCard(String passCardId, String userName);

    /**
     * 修改通行证状态-延期、打印
     * 
     * @param passCardId
     *            通行证编号
     * @param passStatusId
     *            通行证状态编号
     * @param extensionPeople
     *            延期申请人
     * @param isSelf
     *            是否本人
     * @param extensionDays
     *            延期天数
     * @param userName
     *            操作用户
     */
    public ResultPojo editPassCardStatus(String passCardId, String passStatusId, String extensionPeople, String isSelf,
            String extensionDays, String userName);

    /**
     * 查询通行证列表信息List
     * 
     * @param passCardId
     *            通行证编号
     * @param passApplyId
     *            申请编号
     * @param effectStartTime
     *            有效开始时间(yyyy-mm-dd)
     * @param effectEndTime
     *            有效结束时间(yyyy-mm-dd)
     * @param passStatusId
     *            通行证状态编号
     * @return
     */
    public ResultPojo getPassCardList(String passCardId, String passApplyId, String effectStartTime,
            String effectEndTime, String passStatusId);

    /**
     * 查询当年通行证最大编号
     */
    public ResultPojo getMaxPassCardId();

    /**
     * 查询通行证分页信息
     * 
     * @param page
     *            分页参数
     * @return
     */
    @SuppressWarnings("rawtypes")
    public ResultPojo getPassCardPage(Page page);
}
